// https://juejin.cn/post/7524812644717428782
const DIRECT = "DIRECT"; // 直接连接，不使用代理
const DEFAULT = "PROXY 127.0.0.1:7890; DIRECT"; // 默认策略，走 ClashX 代理,若ClashX代理无法响应则自动改为直连
const WHISTLE = "PROXY 127.0.0.1:8899"; // Web 开发用 Whistle 代理
// 域名匹配规则（按顺序匹配，先匹配先生效）

const config = /**
 * @type {const}
 */ ([
  { proxy: DIRECT, pattern: /^::1$/ }, // 本地地址，不走代理
  { proxy: DIRECT, pattern: /^127\.0\.0\.1$/ },
  { proxy: DIRECT, pattern: /^localhost$/ },

  { proxy: WHISTLE, pattern: /\.caihuoxia\.com$/ }, // 业务域名，走Whistle代理
  { proxy: WHISTLE, pattern: /\.zhuanzhuan\.com$/ },
  { proxy: WHISTLE, pattern: /\.example\.com$/ },
]);

/**
 * 代理规则
 * @param {string} url
 * @param {string} host
 * @returns {string}
 */
function FindProxyForURL(url, host) {
  for (let i = 0; i < config.length; i++) {
    if (config[i].pattern.test(host)) {
      return config[i].proxy;
    }
  }
  return DEFAULT; // 未命中规则时走默认策略
}
